#!/usr/bin/python3
"""
Construct an ext4 file-system via mkfs.ext4(8)

Construct a ext4 file-system with the given options at the device
specified via `device`.

Buildhost commands used: `mke2fs`.
"""

import subprocess
import sys


import osbuild.api


SCHEMA_2 = r"""
"devices": {
  "type": "object",
  "additionalProperties": false,
  "required": ["device"],
  "properties": {
    "device": {
      "type": "object",
      "additionalProperties": true
    }
  }
},
"options": {
  "additionalProperties": false,
  "required": ["uuid"],
  "properties": {
    "uuid": {
      "description": "Volume identifier",
      "type": "string"
    },
    "label": {
      "description": "Label for the file system",
      "type": "string",
      "maxLength": 16
    }
  }
}
"""


def main(devices, options):
    device = devices["device"]["path"]

    uuid = options["uuid"]
    label = options.get("label")
    opts = []

    if label:
        opts = ["-L", label]

    subprocess.run(["mkfs.ext4", "-U", uuid] + opts + [device],
                   encoding='utf-8', check=True)


if __name__ == '__main__':
    args = osbuild.api.arguments()
    ret = main(args["devices"], args["options"])
    sys.exit(ret)
